package com.xxxx.microservice.forestry.mapper;

import com.xxxx.microservice.forestry.dto.data.Dic;
import com.xxxx.microservice.forestry.dto.param.QueryCommonParam;
import com.xxxx.microservice.forestry.dto.param.QueryParam;
import com.xxxx.microservice.forestry.dto.result.PointDetail;
import com.xxxx.microservice.forestry.dto.result.QueryResult;
import com.xxxx.microservice.forestry.dto.result.SamplingPoint;
import com.xxxx.microservice.forestry.dto.result.Trph;
import com.xxxx.microservice.forestry.dto.result.Tryjz;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface ForestryMapper {

    List<SamplingPoint> selectAllPoint();

    List<Map<String, Object>> queryCommon(QueryCommonParam queryCommonParam);

    List<Map<String, Object>> selectTable(@Param("xzqdm") String xzqdm, @Param("ydbh") String ydbh, @Param("table") String table, String filed);

    List<Map<String, Object>> queryPjjg(@Param("xzqdm") String xzqdm, @Param("ydbh") String ydbh, @Param("table") String table);

    PointDetail iQuery(String ydbh);

    int insertPoints(List<Map<String, Object>> points);

    int pointsTemp(List<Map<String, Object>> pointList);

    List<Dic> getXzqTree();

    String getXzqRange(@Param("tableName") String tableName, @Param("pac") String pac);

    List<QueryResult> selectList(QueryParam param);

    List<Tryjz> selectTryjz(QueryParam param);

    List<Trph> selectTrph(QueryParam param);

    List<Map<String, Object>> quotaValue(@Param("xzqdm") String xzqdm, @Param("quotas") List<String> quotas);

    List<Map<String, Object>> polygonAnalysis(@Param("where") String where, @Param("type") String type, @Param("value") String value, @Param("groupBy") String groupBy);

    List<Map<String, Object>> pointStatic(@Param("xzqdm") String xzqdm, @Param("quotas") String quotas);

    List<Map<String, Object>> ldxbAssess(@Param("xzqdm")  String xzqdm,  @Param("quotas") String quotas);

    List<Map<String, Object>> dltbAssess(@Param("xzqdm") String xzqdm,  @Param("quotas") String quotas);
}
